1.add functions and ui