changed the interface of openflow client to an abstract class