- add some more tests and use a deque