3 different types is way too much magic IMHO :-) 
We should use only string, with constants. 

Maybe we can add a hash of options as a 2nd parameter. Then we could pass time for commitWithin time