basic skeleton framework to complete and fill in over the next few days