functions now truly take multiple arguments