move hooks out to their own method, rather than implicitly in the migration stage
updates to migration functionality
less flagrant extension
split the logic out, migration functionality