added interface and implementation for deque