factory for Engine object