--- a/TestArray.c
+++ b/TestArray.c
@@ -1,9 +1,10 @@
+
 #include "AutoPanoSift.h"
 
-typedef struct Point Point;
-struct Point {
+struct sPoint1 {
     double x;
 };
+typedef struct sPoint1 Point1;
 
 
 void dump(ArrayList* l)
@@ -11,34 +12,34 @@
     int i;
     printf("[");
     for(i=0; i<ArrayList_Count(l); i++) {
-	printf("%g ", ((Point*)ArrayList_GetItem(l, i))->x);
+	printf("%g ", ((Point1*)ArrayList_GetItem(l, i))->x);
     }
     printf("]\n");
 }
 
-Point* Point_new0()
+Point1* Point1_new0()
 {
-    Point* self = (Point*)malloc(sizeof(Point));
+    Point1* self = (Point1*)malloc(sizeof(Point1));
     self->x = 0;
     return self;
 }
 
 
-Point*  Point_new (double x)
+Point1*  Point1_new (double x)
 {
-    Point* self = Point_new0();
+    Point1* self = Point1_new0();
     self->x = x;
     return self;
 }
 
-void Point_delete(Point* self)
+void Point1_delete(Point1* self)
 {
     if (self) {
 	free(self);
     }
 }
 
-int Point_Compare(IComparator* self, Point* p1, Point* p2) 
+int Point1_Compare(IComparator* self, const Point1* p1, const Point1* p2) 
 {
     if (p1->x<p2->x)
 	return -1;
@@ -50,61 +51,64 @@
 
 int main(int argc, char* argv[])
 {
-    ArrayList* l = ArrayList_new0(Point_delete);
+    SortedLimitedList *s;
+    IComparator cmp;
+    Point1 *p;
+    ArrayList* l = ArrayList_new0(Point1_delete);
     dump(l);
-    ArrayList_AddItem(l, Point_new(0));
-    ArrayList_AddItem(l, Point_new(1));
-    ArrayList_AddItem(l, Point_new(2));
+    ArrayList_AddItem(l, Point1_new(0));
+    ArrayList_AddItem(l, Point1_new(1));
+    ArrayList_AddItem(l, Point1_new(2));
     dump(l);
     // overwrite
-    Point_delete(ArrayList_GetItem(l,1));
-    ArrayList_SetItem(l, 1, Point_new(42));
+    Point1_delete(ArrayList_GetItem(l,1));
+    ArrayList_SetItem(l, 1, Point1_new(42));
     dump(l);
-    Point_delete(ArrayList_GetItem(l,1));
+    Point1_delete(ArrayList_GetItem(l,1));
     ArrayList_RemoveAt(l, 1);
     dump(l);
-    Point* p = Point_new(42);
-    Point_delete(ArrayList_GetItem(l,1));
+    p = Point1_new(42);
+    Point1_delete(ArrayList_GetItem(l,1));
     ArrayList_SetItem(l, 1, p);
-    ArrayList_AddItem(l, Point_new(2));
+    ArrayList_AddItem(l, Point1_new(2));
     dump(l);
     ArrayList_RemoveItem(l, p);
-    Point_delete(p);
+    Point1_delete(p);
     dump(l);
-    ArrayList_AddItem(l, Point_new(3));
-    ArrayList_AddItem(l, Point_new(4));
-    ArrayList_AddItem(l, Point_new(5));
-    ArrayList_AddItem(l, Point_new(6));
+    ArrayList_AddItem(l, Point1_new(3));
+    ArrayList_AddItem(l, Point1_new(4));
+    ArrayList_AddItem(l, Point1_new(5));
+    ArrayList_AddItem(l, Point1_new(6));
     dump(l);
-    Point_delete(ArrayList_GetItem(l,2));
-    Point_delete(ArrayList_GetItem(l,3));
+    Point1_delete(ArrayList_GetItem(l,2));
+    Point1_delete(ArrayList_GetItem(l,3));
     ArrayList_RemoveRange(l, 2, 2);
     dump(l);
-    ArrayList_AddItem(l, Point_new(3));
-    ArrayList_AddItem(l, Point_new(4));
+    ArrayList_AddItem(l, Point1_new(3));
+    ArrayList_AddItem(l, Point1_new(4));
     dump(l);
-    IComparator cmp;
-    cmp.compareTo = Point_Compare;
+    
+    cmp.compareTo = Point1_Compare;
     ArrayList_Sort(l, &cmp);
     dump(l);
     ArrayList_delete(l);
 
-    SortedLimitedList *s = SortedLimitedList_new(5, Point_delete);
-    s->comparator.compareTo = Point_Compare;
-    SortedLimitedList_AddItem(s, Point_new(50));
-    SortedLimitedList_AddItem(s, Point_new(40));
-    SortedLimitedList_AddItem(s, Point_new(30));
-    SortedLimitedList_AddItem(s, Point_new(20));
-    SortedLimitedList_AddItem(s, Point_new(10));
-    SortedLimitedList_AddItem(s, Point_new(0));
+    s = SortedLimitedList_new(5, Point1_delete);
+    s->comparator.compareTo = Point1_Compare;
+    SortedLimitedList_AddItem(s, Point1_new(50));
+    SortedLimitedList_AddItem(s, Point1_new(40));
+    SortedLimitedList_AddItem(s, Point1_new(30));
+    SortedLimitedList_AddItem(s, Point1_new(20));
+    SortedLimitedList_AddItem(s, Point1_new(10));
+    SortedLimitedList_AddItem(s, Point1_new(0));
     dump(&s->base);
 
-    SortedLimitedList_AddItem(s, Point_new(25));
+    SortedLimitedList_AddItem(s, Point1_new(25));
 
     dump(&s->base);
 
     while (SortedLimitedList_Count(s)>0) {
-	Point_delete(SortedLimitedList_GetItem(s,0));
+	Point1_delete(SortedLimitedList_GetItem(s,0));
 	SortedLimitedList_RemoveAt(s, 0);
 	dump(&s->base);
     }