Maybe this could return just a dict that whose values are `(start, end)` tuples and whose keys are strings indicating the different parts ("submission", "problem", "self-assessment", "peer-assessment")?