Broke cyclic shared_ptr references
Separated engine from other sources, renamed files to match one naming style