added software diagram