add curve implementation