apply consistent pattern for keeping property and observer