public function getValueFromOtherStep($fromStep, $key)
    {
        // load the steps in the cache, if this one doesn't exist
        if (!array_key_exists('steps_' . $fromStep, $this->step_data_cache)) {
            $steps = self::get()->filter('SessionID', $this->form->session->ID);

            if ($steps) {
                foreach ($steps as $step) {
                    $this->step_data_cache['steps_' . $step->ClassName] = $step->loadData();
                }
            }
        }

        // check both as PHP isn't recursive
        if (isset($this->step_data_cache['steps_' . $fromStep])) {
            if (isset($this->step_data_cache['steps_' . $fromStep][$key])) {
                return $this->step_data_cache['steps_' . $fromStep][$key];
            }
        }

        return null;
    }