added Visio block diagram