link protocols to software with has_many :through, implement quick view for supported protocols