added some draft implementation to deque