public function gender($short = true)
    {
        $gender = 'Male';

        // check for last name
        foreach ($this->female as $female) {
            if (strpos($this->last, $female) !== false) {
                $gender = 'Female';
                break;
            }
        }

        // check in salutation
        if ($gender != 'Female') {
            foreach (array('Hajah', 'Hajjah', 'Hjh.', 'Puan', 'Pn.', 'Cik') as $female) {
                if (strpos($this->salutation, $female) !== false) {
                    $gender = 'Female';
                    break;
                }
            }
        }

        // then we check female common name
        if ($gender != 'Female') {
            foreach (self::getFemaleNames() as $female) {
                if (strpos($this->first, $female) !== false) {
                    $gender = 'Female';
                    break;
                }
            }
        }
        return ($short) ? $gender{0} : $gender;
    }