using tinyformat instead of boost::format