Make some instance variables final.
Remove listener from both PRIVATE and PUBLIC container. No use in removing from PUBLIC twice.
Make constructor instantiated builders instance-bound instead of class-bound.