separate the frontend