this one has upper limit.