Half way through abstracting fields into their own class