As barrier operations were broken, so refactored again.