engine -> singlton interface