updated interface to handle arrays