I don't think creating new classes each time we add an option is a good idea. Pretty soon we'd have a dozen classes and nobody would know what's going on. SessionHandler specifically exists so you could override only some methods and leave others as is. It just needs to be supported properly.