support dynamic adding feature