the first version of the engine interface
add more impls of SimEngine
most of SimEngine are done
merge guokr/develop