add beep event callbacks in constructor so they don't get added multiple times