combine ui and backend