add missing file tools.hpp