implement bgm