generic engine setup method