fixes #25, added `fn` to the `.all()` implementation