refactoring to limit core classes visibility
mini comit to saulo -> Example1