first iteration of framework