Split sendGoal and useClientSideGoalDelivery into a separate interface