added command, mediator, proxy and decorator