introduce fields templates framework + setter template