Beacon v2

Had to move this outside the constructor because the protocols need mService to be initialized.