save in case redo of listener doesn't work
- return class name so client can cast object appropriately
- now receives a tuple if it is a subclass of the entry