Added function caching decorators