driver uses factory method to create and execute controller
updated uml

added controller, peer, topPeer, etc
added module interface
added module factory