added typeclass