separation of frontend and backend