Detached parameter data from the program

Closes #208

Please have a good look at it. There is probably a couple of ergonomic improvements we can do.
Isn't it obvious from the method signature?