getViewType works for different layouts

Cache is based on per index type, and you have more control over updates to items when scrolling / stopping ( downloading images from network mainly )