accept range, refactor requests