Changed initialization api
Changed includes to forward declarations wherever possible