1. A method for programming non-volatile storage, comprising: writing data to a first non-volatile storage element; and writing data to a second non-volatile storage element while writing data to said first non-volatile storage element, said first non-volatile storage element and said second non-volatile storage element are part of a group of non-volatile storage elements that are in series, wherein said steps of writing data to a first non-volatile storage element and writing data to a second non-volatile storage element comprise: applying a first value to a common bit line; boosting word lines associated with said group to create a first condition for said first non-volatile storage element based on said first value; cutting off a boundary storage element associated with said group to maintain said first condition for said first non-volatile storage element; applying a second value to said common bit line; and boosting at least a subset of said word lines associated with said group to create a second condition for a second non-volatile storage element based on said second value, said first condition and said second condition overlap in time.