updated software diagram