modify ui and function