initial working - returns too early
working creaetion and barrier