adds volume change callback