added a lot of classes and possibly made some headway on tempo detection