- Merged public and private headers
- Moved private includes to sources and only kept public includes in headers
- Split files
- Replaced defines with enums
- Changed include paths for tests and moved cmake build defs from there
- Added headers to tests