basic structure sorted out. TODO's added for y'all to go through and fill out