add BuilderPattern