add Singleton pattern
force c/cxx flag usage
add optional test tree