NOC's device support is implemented via profiles. Profile contains description of device personality (supported access methods, various prompt settings, session setup/shutdown sequences etc). Profiles are named like <vendor>.<software name> (i.e Cisco.IOS, Juniper.JUNOS, Force10.FTOS)
Each profile contains collection of scripts, each serving particular task. Each script implements Interface. Scripts are named like <profile>.<script> (i.e. Cisco.IOS.get_version, Juniper.JUNOS.get_version, both of IGetVersion interface).