I'm in favor of encapsulating, but against having three different handlers. I might be wrong though: any other opinion?
And one implementation question for @mmoayyed :  how would be chosen the right handler? with some ```supports``` method?