public static function parse($message)
    {
        static::resetConfig();

        $chr32 = chr(32);
        $config = [];

        if (empty($message) || !is_string($message)) {
            return static::read();
        }

        $config += [
            'raw' => $message,
            'parts' => explode($chr32, trim($message), 2)
        ];

        $config += [
            'commandCode' => substr($config['parts'][0], 0, 1),
            'command' => strtolower(substr($config['parts'][0], 1))
        ];

        if (count($config['parts']) > 1) {
            $config += [
                'message' => $config['parts'][1],
                'arguments' => array_map(
                    'strtolower',
                    explode(
                        $chr32,
                        $config['parts'][1]
                    )
                )
            ];
        }
        static::config($config);

        return static::read();
    }