implement builder class
implement builder class