box fn args if not protocol