rework to allow for other curve types