size after considering minimum and maximum allowed
if min==0, it is ignored. if max==0, it is ignored
See Implementation