made some changed to make code less coupled

may need to change the run method in all three into  one generic
overloaded method