adding boilerplate for functions