Updated better scope and abstractions