Initial UML design, subject to revision