refactoring front end infrastructure