cache in memory  is ok
need to save to db