Make the applyDefaults function public.
Clarify some documentation, move some pieces around.
Have EventSubject never onComplete, or onError, just forward those on as events.
Also, have it take the target parameter.
Label the #get() method
Rework the event property of record and attribute.
Flesh out the record test