all props should be in alphabetical order