Kvalues

I didn't intend to take this approach to the problem.  I wrote the solution we discussed, but I kept having the feeling it was overly complicated.

So I went back and tried it like this and felt like the outcome felt good and made the code simpler and api simpler.  

Maybe I should push the other solution so you can compare the two except I'd have to write it again because I didn't keep a copy.

I wonder how other graphing tools handle these inputs.  I'm sure lots of people have dealt with this problem before.