Add multi-modes support
MISC update