refactor new abstract sequence methods to be more like the existing ones (and remove the need for a string switch)