Major refactoring for 2.2