block diagram, work in progress