refactored mode specific property getting and setting