split the shell builder in logically parts