make sure to decrement list length on remove