refactor property definition