separate interval builder/uploader logic from manager