default fn should recieve a single arg