now no longer traversing inheritance tree for every cleanup action
Bill Piel would like all these attributes to be metadata annotations
adding Clonable annotations
simplified code, added annotations
added memoization