extract script into a runner
delegate console output to reporter object