refactor everything to use the new Scope class