add named group support
refactor
improve document