refactor builder