some more optimizations; property refactoring WIP