supports immutable and mutable builders
correctly sets field modifiers
correctly implement methods inherited from other interfaces
update readme