adding deque implementation