Update Trait to a sealed trait and case classes
Merge remote-tracking branch 'origin/classy-tags' into classy-tags