better way to handle both lists and args