massive refactoring. Everything is very clean and extendible. To properly integrate a new Sorting method use as a reference the overrided interface methods and constructors of any already integrated sorting class. With those methods as a reference it's pretty easy to extend the framework.