first commit with the general framework layed out