added entirety of framework