add typeclass heirarchy