implemented gui
renamed TProtocolFactory to ProtocolFactory to avoid name collision
added mockito as a dependency