working need to encapsulate epoll