Changed design to decouple presentation from domain.