setting up the basic structure