add initial framework with libevent and workqueue