Some new classes and interfaces, Reordered code, Removed magic some magic numbers