some refactoring and property highlights