can run and that will write to STDOUT according to "the module protocol" • they can be used in commands promises, or with the usemodule function in classes promises. – Ref.: modules in commands: http://tinyurl.com/oc7h9wj – Ref. usemodule function: http://tinyurl.com/nhjzhag • they can set/cancel classes, and set/unset variables and lists • they can be written in any language (any shell, Perl, Python, awk, sed, C,...)