front end is made almost dynamic