pull out runnable tasks into first-class classes, and add an option to find updated versions