It's hard to manage offset shifting separated with other targets, gather them and make the implementation more readable fix the jumping table problem along with this refactor