added design diagrams