public function explainPerms($permissionNumber)
    {
        $firstFlag            = $this->matchFirstFlagSingle($permissionNumber);
        $permissionsString    = substr(sprintf('%o', $permissionNumber), -4);
        $numericalPermissions = $this->numericalPermissionsArray();
        return [
            'Permissions' => $permissionNumber,
            'Code'        => $permissionsString,
            'First'       => $firstFlag,
            'Overall'     => implode('', [
                $firstFlag['code'],
                $numericalPermissions[substr($permissionsString, 1, 1)]['code'],
                $numericalPermissions[substr($permissionsString, 2, 1)]['code'],
                $numericalPermissions[substr($permissionsString, 3, 1)]['code'],
            ]),
            'First'       => $firstFlag,
            'Owner'       => $numericalPermissions[substr($permissionsString, 1, 1)],
            'Group'       => $numericalPermissions[substr($permissionsString, 2, 1)],
            'World/Other' => $numericalPermissions[substr($permissionsString, 3, 1)],
        ];
    }