private function resolveOptions()
{
$constructorResolver = new ConstructorResolver($this->reflected);
// Contructor options are only the ones matching the contructor args' names
$constructorOptions = array_intersect_key($this->rawOptions, $constructorResolver->getConstructorArgs());
// Extra options are everything else than contructor options
$extraOptions = array_diff_key($this->rawOptions, $constructorOptions);
$extraOptionsResolver = new ExtraOptionsResolver($this->reflected, array_keys($extraOptions));
return array($constructorResolver->resolve($constructorOptions), $extraOptionsResolver->resolve($extraOptions, $this));
}