diff --git a/lib/roblox_emulator/src/runner/cframe.rs b/lib/roblox_emulator/src/runner/cframe.rs
index 4b17fe9..9777343 100644
--- a/lib/roblox_emulator/src/runner/cframe.rs
+++ b/lib/roblox_emulator/src/runner/cframe.rs
@@ -73,6 +73,15 @@ pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{
 			Option<Number>,Option<Number>,Option<Number>,
 			Option<Number>,Option<Number>,Option<Number>,
 		)|match tuple{
+			//CFrame.new()
+			(
+				mlua::Value::Nil,mlua::Value::Nil,None,
+				None,None,None,
+				None,None,None,
+				None,None,None,
+			)=>{
+				Ok(CFrame(glam::Affine3A::IDENTITY))
+			},
 			//CFrame.new(pos)
 			(
 				mlua::Value::UserData(pos),mlua::Value::Nil,None,
@@ -80,8 +89,8 @@ pub fn set_globals(lua:&mlua::Lua,globals:&mlua::Table)->Result<(),mlua::Error>{
 				None,None,None,
 				None,None,None,
 			)=>{
-				let pos:&Vector3=&*pos.borrow()?;
-				Ok(CFrame::point(pos.0.x,pos.0.y,pos.0.z))
+				let Vector3(pos):&Vector3=&*pos.borrow()?;
+				Ok(CFrame::point(pos.x,pos.y,pos.z))
 			},
 			//TODO: CFrame.new(pos,look)
 			(