initial attempt at using cache