simple typeclasses