refactor property assignment