Revised with Constrains and Sequence Diagrams