Extracted type classes to their own package for readability.