super powerful SingleViewTypeArrayAdapter