a little optimized of list and grid view, cachmning object