public function stateChanged($entity, $current, $new)
    {
        $key = $current.'=>'.$new;

        if (!isset($this->_machine[$key])) {
            return true;
        }

        $callbacks = $this->_machine[$key];

        foreach ($callbacks as $callback) {
            $result = $callback;
            if (is_string($callback)) {
                $result = $this->{'_'.$callback}($entity);
            }
            if ($result === false) {
                return false;
            }
        }

        return true;
    }