add Queue class and tests