Added abstract and category type classes