Parametric

While the branch didn't turn out to be parametric, many improvements have been made.