add test for fetch remove if value mismatches
improve fetcher implementation
remove notify method