Refactored and rebuilding BCM