subview layouts; cache per user