allow using non-integer values for sub