Every model's field is protecetd for now. TPublicFields added for declaring public fields