allow ulist() and olist() to use args or array