support functions that take arguments