allows definition of functions