frame-by-frame work and offset