refactor builder a bit