special functions can now take any number of args