refactor FieldList -> FieldListView and add a new FieldList class

this is the first step towards implementing #1