Change to defer callback and run in machine context.
Add custom state error.
Add method lookup.
Allow for concurrent notifications.
Ensure correct integration through target.
Fix to target context.
Document how target works.