protected function readPreferences()
    {
        // assume empty user-preferences
        $storedPreferences = null;

        if (Doozr_Kernel::RUNTIME_ENVIRONMENT_CLI !== self::$runtimeEnvironment) {

            // iterate over storages and try to reconstruct the previously stored preferences
            foreach (self::$storages as $storage) {
                // construct method-name for current storage
                $method = 'read'.ucfirst($storage);

                // try to get preferences from storage
                $storedPreferences = $this->{$method}();

                // if result was retrieved successfully we can
                if ($storedPreferences) {
                    break;
                }
            }
        }

        // successfully retrieved
        return $storedPreferences;
    }