properly handle offset(for patch)