refactor and new properties