separated the engine.go file into smaller files for readability