reactive is not entirely header-only anymore