Incremental logic is complex, this should finally be correct in all cases