Revamp from starting point to starting offset.
Rewrite context-dependent to context-independent.