play with type classes