Move out External Program interface to its own module.
Factor out External Program tests to their own group.