I had a problem when I pulled this up into the base class during translation, it complained it could not merge the different erase functions argument and return values