Make callable ctor not explicit
Pass callable instead of task to the message_loop