public function __construct($subject, Context $context = null)
{
$this->subject = $subject instanceof Subject ? $subject : new Subject($subject);
$this->policies = new PolicySet();
if ($context !== null && $context->get('policies') !== null) {
$this->setupPolicies($context->get('policies'));
}
}