added engine and support structs
completed engine methods
Merge remote-tracking branch 'origin/engine'