properties should be in alphabetical order