Added a recursive option. Added some information and changed the api of the Engine class.