functions.hpp