Refactor bucket logic into abstract peer -> every peer should be able to throttle bandwidth