Using io_service is cool, but it's better to train manual management of threads