add tags function and etc...