       .invert()
       .clipTo(us)
       .invert()
-    new ThreeBSP us.build(them.allPolygons()).invert(), @matrix
+    new ThreeBSP us.build(them.allPolygons()).invert(), @matrix, @options
 
   union: (other) =>
     [us, them] = [@tree.clone(), other.tree.clone()]

          geometry.faceVertexUvs[0].push vertUvs

  # CSG Operations
  subtract: (other) => @options.timer.doTask =>
    [us, them] = [@tree.clone(), other.tree.clone()]
    us
      .invert()

    node.front    = @options.timer.doTask => @front?.clone()
    node.back     = @options.timer.doTask => @back?.clone()

  constructor: (polygons, @options={}) ->
    if polygons? and not (polygons instanceof Array)
      @options = polygons
