Add support for UNNEST

add a constructor arg for this, and make this implementation final