almost complete the frontend page