first work on cache