reorganize front-end