final refactor for the BPManager