free memory
add class EventPool using select
use deque to keep connections
split out listen and bind of Socket class