Sweeping through the .cc file, I didn't see anything that warranted the separate source file. Easy integration for a library is a very attractive feature, and you can't be easier to integrate than with a single header, the best libraries out there are header-only. Hiding the implementation details can be accomplished with anonymous namespaces.