handle list, charactervector cases separately