design break up into blocks