no more a final class, you can inherit from it to implement your own design doc

added initialize() method

made final many other methods