added stack and queue implementation