laid out a bunch of framework