decentralize some logic, individual view providers now provide the details rather than detecting from a huge array. #1925