before your refactor this was a pure interface -- i think we discussed it was an experiment in preventing dual-inheritance bottlenecks in client code. the idea was to allow any object to present a job interface. certainly that is worthy of discussion.

that said why not leave the interface alone and just *also* provide an optional base class with the optional-ish methods implemented as empty. 

i'd also say that as we move towards php 5.5 where we get traits, it's even easier to do this type of thing vs using inheritance. 

just some thoughts for a future discussion