protected function __construct($aggregateId, array $payload, array $metadata = [])
{
//Metadata needs to be set before setAggregateId is called
$this->metadata = $metadata;
$this->setAggregateId($aggregateId);
$this->setPayload($payload);
$this->init();
}