introduce signature cache