Refactoring of the BlockBuilder class and its children