function Update()
	-- local position = GAME:GetInputSystem():GetMousePosition() -- don't do this, it seems the const of the const reference is just ignored
	local position = game.Vector( GAME:GetInputSystem():GetMousePosition().m_x, GAME:GetInputSystem():GetMousePosition().m_y )
	
	--get camera and calculate position
	local viewport = game.RenderSystem_GetInstance():GetDefaultViewport()
	local camera = viewport:GetCameraPointer()
	local zoom = camera:GetZoom().m_x

	OWNER:SetFloat( "posx", ( position.m_x - viewport:GetWidth() / 2 ) / zoom + camera:GetPosition().m_x )
	OWNER:SetFloat( "posy", -( ( position.m_y - viewport:GetHeight() / 2 ) / zoom - camera:GetPosition().m_y ) )
	OWNER:GetNode():SetPosition( position )
	
	--OWNER:GetNode():SetScale( game.Vector( 30 / zoom, 30 / zoom ) )
end