Store class instead of name.
Stop casting type.
Add callback name checks.
Add callback name checks to observer.
Test for callback name conflicts.
Fix specs with wrong callback names.