comments on why we need the base case [[]] with current implementation
more comments on recursion