Reorganize/refactor
Add hook point for extra sequence sources
Add algorithms: shift_front, consume, equal