Add changable cursor class supports to Collection class

With these little changes users can provide their own cursor class to use with collection class and do what ever they want in cursor