separated client and backend