front-end basic structure