list works like a stack. no bounds checking when removing nodes from list