moving to build phase callbacks instead of the proxy approach as the work-around for the current double-check locking