some work on compare