The original method will take a block

If the original method takes a block, the redefined method will pass it along
Watch can be simplified

Removed unnecessary code
Watch should accept a strategy

If a `:with` option is passed, than anything that responds to call can be used