implement new cache layout