add :changes_method option

Same as pull request #75, but rebased to master.

As I am not using master in my application, please verify that I haven't missed something.