public function getMethodParameters($name, $options, $logError = true)
    {
        $method = new \ReflectionMethod($this, $name);

        $parameters = $method->getParameters();

        $details = array();
        foreach ($parameters as $param) {
            if (isset($options[$param->getName()])) {
                $details[] = $options[$param->getName()];
                unset($options[$param->getName()]);
            } elseif ($param->isDefaultValueAvailable()) {
                $details[] = $param->getDefaultValue();
            } else {
                if (is_a($this, '\\mpf\\interfaces\\LogAwareObjectInterface')) {
                    if ($logError) {
                        $this->critical("Missing parameter " . $param->getName() . "!", array('options' => $options));
                    } else {
                        $this->debug("Missing parameter " . $param->getName() . "!", array('options' => $options));
                    }
                }
                return null;
            }
        }

        if ($options && $this->applyParamsToClass())
            foreach ($options as $k => $n) { // apply extra options 
                $this->$k = $n;
            }

        return $details;
    }