attributes hiding, refactoring, name changing