first rough cut at libev integration