not use gen_creffett, just use upper