Change type tags to a trait holding the tag, as this works better than a type member for implicit search