 	{
 		use namespace minko_math;
 
-		minko_math var _min			: Vector4		= new Vector4();
-		minko_math var _max			: Vector4		= new Vector4();
+		private static const TMP_VECTOR4	: Vector4	= new Vector4();
+		
+		minko_math var _min			: Vector4			= new Vector4();
+		minko_math var _max			: Vector4			= new Vector4();
 
 		minko_math var _vertices	: Vector.<Number>	= new Vector.<Number>(24, true);
 

			var maxY	: Number	= _max.y;
			var maxZ	: Number	= _max.z;
			
			return false;
		}

		public function clone() : BoundingBox

		 * 
		 */
		public function testRay(ray 		: Ray,
								transform	: Matrix4x4	= null,
								maxDistance	: Number	= Number.POSITIVE_INFINITY) : Boolean
		{
			var localOrigin 	: Vector4	= transform
				? transform.transformVector(ray.origin, TMP_VECTOR4)
				: ray.origin;
			var ox				: Number	= localOrigin.x;
			var oy				: Number	= localOrigin.y;
			var oz				: Number	= localOrigin.z;
			
			var localDirection	: Vector4	= transform
				? transform.deltaTransformVector(ray.direction, TMP_VECTOR4)
				: ray.direction;
			
			localDirection.normalize();
			
			var dx		: Number	= 1.0 / localDirection.x;
			var dy		: Number	= 1.0 / localDirection.y;
			var dz		: Number	= 1.0 / localDirection.z;
			
			var minX	: Number	= _min.x;
			var minY	: Number	= _min.y;
			var minZ	: Number	= _min.z;
