Cleaned up dequeue (consider 2 elem case), implemented iterator