add CallBack
add CallBack type
fixx func(c *Conn) to func(conn *Conn)
add response channel to callback
handle EOF