better epoll structure