update almost functioning