refactor away from Scope::Upper

due to consensus that this is the wrong sort of crazy