be able to specify the scope
code clean up
to be better