refactor moved engine parts to new file