changed func signatures to use variadic args