refactor property