adding and deletes work, going to make an optimizational change