adopted cxxtools