Added Type classes and extra Data