now supports array