public async Task Dispatch(Command command)
 {
   CommandHandler handler;
   if(_handlers.TryGetValue(command.GetType(), out handler))
   {
     await handler.Handle(command);
   }
   else
   {
     throw new NotImplementedException($"No handler for commandtype {command.GetType().FullName}");
   }
 }