implement cache in albumService