Moved some class defs to separate files.  added tailrec annotation to flow runner execNode methods to ensure there are no stack overflows