Merge "Revert "Revert "Split up main engine from methods"""