Add cache to improve performance