Remove duplicate code
Fix Binding::toString test for provider
Simplify scope feature and implement singleton annotation