add case insensitive feature, a bug still in label( must be lowercase)