tidied up migrations, made API infinity times more expressive