passing an array to most functions works as expected - close #428