add ranges support