fixed cache decorator eating __name__, __doc__, etc.