separating out browser frontend and backend