Thanks for playing all the way and useful suggestions! I will consider looking into these implementations.