Complete rewrite, using intervals and background positions