moved Builder to its own module