protected function newSelfs(array $input)
    {
        $strObjects = [];

        foreach ($input as $key => $value)
        {
            if (is_string($value))
            {
                // Convert the scalar string to a Str Object
                $strObjects[$key] = $this->newSelf($value);
            }
            elseif (is_array($value))
            {
                // Recurse into the array
                $strObjects[$key] = $this->newSelfs($value);
            }
            else
            {
                // We don't know what it is do do nothing to it
                $strObjects[$key] = $value;
            }
        }

        return $strObjects;
    }