minor updates
fields can now be updated
lots of refactoring