implement barriers