These should probably be refactored so that common property declarations aren't repeated.