public static function create($string) {
        if(is_array($string)) {
            throw new InvalidArgumentException('Arrays cannot be casted to string!');
        }

        if(is_object($string) &&
            !(($string instanceof StringConvertibleInterface) || (method_exists($string, '__toString')))) {
            throw new InvalidArgumentException('The given value is an object but cant converted to string!');
        }

        $value = (string) $string;
        return new StringObject($value);
    }