remove + 1
add getvalue interface
abstract comparators