I changed the naming, does that help?  I can't call invalidate from remove, because remove is the optional part, which is not required in some cases.