moved some responsibilities from the form down to fields