Omar added his UML diagram [issue #83]