fields should be private