[wip] initial code to allow field configuration to be done in a more OO friendly way