working on basic template instantiator