Add more documentation
Update tests to use private functions
Demonstrate compiler flags