Dirty commit
Use version comparer where possible
Comments and minor refactoring
Minor refactoring
Refactoring, work in progress, more power to SyncProvider