also new model, use only one interface 'IEngine'.

definition both struct and operation in it.