Update classes to use inheritance pattern.
Metaprogram TagLib lookup and update test suite to use inheritance pattern.
Merge conflicts and code cleanup.