Adding Nova Callbacks

Missing UTs (as Roaet calls them), but otherwise should be close to done.

DO NOT MERGE until unit tests are added...

^ ignore
Unit tests now added!
I don't want to be that guy, but this method is a bit unwieldy. Maybe refactor into sub-methods.