In removeSimpleObject when an object is removed from the map, its "update" is set to NO_UPDATES_NO_COLLIDES. When the object is re-added to the map, "update" was not set back to NORMAL, this caused re-added objects to not update. I changed addSimpleObject to make sure every new object added has “update” set to NORMAL.

In removeSimpleObject, nothing was happening in the case that o was the only element in the list, making it impossible to remove the only object in the map, so I added the else clause.