reorganized project to enable building on older versions of gcc