better private properties
improve $Element#context