Less indirection.
Clean up
use custom check call back if one is provided
use git pass through
Test that the check call back is made
custom apply callback
Callbacks on its own class
Shutdown callbacks