some front-end stuffs