Training as an engine

This is pretty nuts, so bear with me here.

**DO NOT MERGE**