Add support for upper and lower limits on params