implemented approximate
working on range