add ui and some modify