main skeleton of the application