* make more change for the multiple typename/values, almost finished (still have bugs)