refactoring bad extensions
design changes