refactor base builder class