simplifying the handler caches and getting rid of the void routine bit