creates functions on object if not present
creates a id on the object if does() is called
creates a functions subrecord on the entity to store the original function
stores the sequence of expectation functions and calls each in turn