adding builderpattern