initial templated framework