reimplementing array methods into functions without using any array methods figure out what the methods do write code that replaces each method check for edge cases and write logic for optional parameters