simplify BrickBuilder by passing around computations instead of bricks, also avoid the creation of intermediate bricks that are never referred to