re-arrange the codes
refactor epoll implementions