3 CurveBag implementations seemingly correct and consistent with each other