properties should be defined before methods