start hmm
decorator
behaviour
mediator