enhance to support different mode