add ui and some functionality