add supervised training option.  still need to finish tests and debug