separate internal code from public API
bump version for bigger changes
remove Engine interface