Refactor traffic shaper, add download traffic shaper