add user func and some fix