restructured Field class