functions can take multi methods