blocking now has an atomated implementation