change API so that it doesn't use new::with::timeout