refacotred to move non-dgu specific code to separate class. Could perhaps contribute to migrate_extra.