generalize function - return array