 								continue if neighborAddress[0] == currentAddress[0] and neighborAddress[1] == currentAddress[1] and neighborAddress[2] == currentAddress[2]
 
 								# we we're here already
-								continue if visitedList.indexOf(V3.toString(currentAddress)) >= 0
+								continue if visitedList.indexOf(V3.toString(neighborAddress)) >= 0
 
 								frontCorners = 0
-								backCorners = 0
+								backCorners  = 0
 
 								for cornerX in [0..1]
 									for cornerY in [0..1]

			
			pullingQueue : []
			
			pullBucket : (vertex) ->

				vertex = V3.clone(vertex)
				console.log "pull" , vertex

				@cube[@bucketIndexByAddress(vertex)] = loadingState

				vertex[0] = vertex[0] << 6
				vertex[1] = vertex[1] << 6
				vertex[2] = vertex[2] << 6

											bucketCornerVertex[1] = bucketCornerVertex[1] | 63 if cornerY
											bucketCornerVertex[2] = bucketCornerVertex[2] | 63 if cornerZ

											cornerSide = planeDistance - V3.dot(planeNormal, bucketCornerVertex)

											if cornerSide < -EPSILON
												backCorners++ 
											else if cornerSide > EPSILON
												frontCorners++

								if frontCorners
									if backCorners	
