major refactoring about to take place