Once the implementation is stable, the span first branch needs to be split up into smaller branches in order for it to be reviewable.