moved over to command pattern.  Still needs some testing.