queue done
stack implimented