allow passing in None to a user function