adding diagrams and psuedo code