add full support for epoll