Use decorators for patches

This will close #123