split the migration into two

but this structure change confuses me a bit
I think I need another pair of eyes on this