Started to work on the more general logic of the typeclass.