Refactored the header files such that libevent dependency is only in the implementation classes