making diff a class and making sub-classes that do the db and yaml stuff, meh.