the `fn` argument in the `.transform` method is now optional