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.
Sure we can use `String`. I was just over-optimizing...