Factor out central fieldmodel logic shared by everything