use new to avoid deallocation before then callback
Leave log info only in the most important places
Make runner a class member