uses Arrays