I believe that the call-signature of the function should mirror what's actually in the CCM89 paper. In this case, IMHO it should be the same as the cython function. This way people can just check the code and paper and confirm that this is right. I think all the conversion between `a_v`, `ebv`, `r_v`, `a_k`, ... should be handled by the classes that you have already started to implement.