added updated client and input class