unsealed classes for better extendibility
implemented field update operations