note that supporting new programs is very straightforward