add stack and queue (tested)