better jump table using function look-up (smaller & faster)