move dispatcher into it's own class, move controller into it's own class

Signed-off-by: Steven Armstrong <steven.armstrong@inf.ethz.ch>