added typeclasses outline