added percentage range support