improve style of code
remove thread pool and incapsulate thread inside worker
simplify code
simplify code; hide i_handler