performance improvement: add cache layout