add proper jump handling