Separated out some classes, added an abstract wheel adapter and sorted out some formatting issues.