added programRunner so that several profilers could be added more easily