Hoops Rumors Originals

2020/21 NBA Over/Unders: Atlantic Division

The 2020/21 NBA regular season will get underway on December 22, so it’s time to start getting serious about predictions for the upcoming campaign.

With the help of the lines from a handful of sports betting sites, including Bovada and BetOnline, we’re running through the predicted win totals for each of the NBA’s 30 teams, by division. In a series of team-by-team polls, you’ll get the chance to weigh in on whether you think those forecasts are too optimistic or too pessimistic.

Of course, there are plenty of wild cards to take into account this season. For one, teams are scheduled to play 72 games instead of 82, so if you’re picking a team to win 41 games, you’re not just expecting them to be a .500 club — you’re projecting them to finish 10 games above .500. For each team’s over/under below, we’ve noted the record they’d have to achieve to finish “over” their projection, as a reminder.

It’s also worth noting that the coronavirus pandemic could cause some games to be canceled in 2020/21. We don’t want you to have to take possible cancellations into account when making your picks though, so don’t let that stop you from taking the “over.” If a team has a couple games canceled, we’ll adjust their over/under figure downward, so you’re essentially just projecting that team’s winning percentage.

We’ll kick things off today with the Atlantic division…


Boston Celtics

Trade Rumors app users, click here for Celtics poll.


Brooklyn Nets

Trade Rumors app users, click here for Nets poll.


Philadelphia 76ers

Trade Rumors app users, click here for Sixers poll.


Toronto Raptors

Trade Rumors app users, click here for Raptors poll.


New York Knicks

Trade Rumors app users, click here for Knicks poll.

Oldest, Youngest Players On NBA Rosters For 2020/21

When Vince Carter officially called it a career and announced his retirement earlier his year, it meant the NBA had a new elder statesman. Having re-signed with the Heat for the coming season, 40-year-old big man Udonis Haslem currently holds the title of oldest active player on a roster for 2020/21.

While Haslem is back in action for another year, many of the NBA’s other oldest players haven’t found new homes after being on rosters last season. Jamal Crawford, Pau Gasol, Kyle Korver, Tyson Chandler, Thabo Sefolosha, J.J. Barea, Anthony Tolliver, and Taj Gibson are among the players currently on the free agent market who would be among the 10 oldest players in the league if they were to sign a new contract.

I expect we’ll see a few of those guys playing in the NBA this season, but for the time being, here’s the full list of the 10 oldest players on NBA rosters, led by Haslem:

  1. Udonis Haslem, Heat (born 6/9/1980)
  2. Andre Iguodala, Heat (born 1/28/1984)
  3. Carmelo Anthony, Trail Blazers (born 5/29/1984)
  4. J.J. Redick, Pelicans (born 6/24/1984)
  5. LeBron James, Lakers (born 12/30/1984)
  6. Marc Gasol, Lakers (born 1/29/1985)
  7. Paul Millsap, Nuggets (born 2/10/1985)
  8. P.J. Tucker, Rockets (born 5/5/1985)
  9. Chris Paul, Suns (born 5/6/1985)
  10. Trevor Ariza, Thunder (born 6/30/1985)

On the other end of the spectrum, the NBA’s top 10 youngest active players were all selected in the 2020 draft, with eight coming off the board in the top 20 picks.

A number of young undrafted free agents have gone right from college to an NBA roster within the last month, but the youngest of 2020’s rookies are the ones who declared for the draft in their first year of eligibility — and many of the earliest of this year’s early entrants were strong enough prospects to be drafted.

A year ago, Pistons rookie Sekou Doumbouya – born on December, 23, 2000 – was the NBA’s youngest player. This year, the top 10 all have 2001 birth dates.

Here are the 10 youngest players currently on NBA rosters:

  1. Aleksej Pokusevski, Thunder (born 12/26/2001)
  2. Patrick Williams, Bulls (born 8/26/2001)
  3. LaMelo Ball, Hornets (born 8/22/2001)
  4. Anthony Edwards, Timberwolves (born 8/5/2001)
  5. Killian Hayes, Pistons (born 7/27/2001)
  6. Theo Maledon, Thunder (born 6/12/2001)
  7. Jahmi’us Ramsey, Kings (born 6/9/2001)
  8. Isaiah Stewart, Pistons (born 5/22/2001)
  9. Kira Lewis Jr., Pelicans (born 4/6/2001)
  10. James Wiseman, Warriors (born 3/31/2001)

Photo courtesy of USA Today Sports Images.

Community Shootaround: Harden Saga

The Rockets found a way to accommodate Russell Westbrook, essentially swapping him for another burdensome contract in John Wall. Will they be able to do the same for James Harden?

On paper, Harden does not seem to have much leverage. He’s got three years and $133MM remaining on his contract, including a $47MM player option in the final year. But when was the last time a superstar wanted to be traded and didn’t eventually get his wish?

Harden wants to go to the Nets, Sixers, Bucks or Heat, but that’s not a simple task. Brooklyn would seemingly have the assets to pull it off and create a fearsome trio of Kevin Durant, Kyrie Irving and Harden but it could also turn out badly with three headstrong perennial All-Stars trying to mesh their talents.

The Sixers would likely have to give up Ben Simmons but would a pairing of Harden and Joel Embiid work better? New coach Doc Rivers believes he can find ways to maximize the talents of Simmons and Embiid.

The Bucks would seem to be an unlikely destination unless Giannis Antetokounmpo demands it as an incentive to sign a supermax extension. Even then, Milwaukee probably wouldn’t have the assets to pull it off.

Pat Riley has never shied away from bold moves but he seems to have a good thing going. Would the Heat president gut the rotation and go all in on a Harden-Jimmy ButlerBam Adebayo trio? It’s more likely Riley will wait to see what the free agent market brings next summer.

That leads us to our question of the day: Where do you believe James Harden will wind up this season?

Please take to the comments section to weigh in on this topic. We look forward to your input.

NBA Players Who Can Veto Trades In 2020/21

No-trade clauses are rare in the NBA, and they’ve become even rarer in recent years. To be eligible to negotiate a no-trade clause, a player must have at least eight years of NBA experience and four years with his current team. Even if a player qualifies, his team is unlikely to restrict its flexibility by including a no-trade clause in his deal.

Still, even though there’s not a single NBA player with an explicit no-trade clause in his contract at the moment, there are several who will have the ability to veto trades in 2020/21.

A player who re-signs with his previous team on a one-year contract – or a two-year deal with an option year – is given no-trade protection. So is a player who signs an offer sheet and has that offer matched by his previous team. Players who accept one-year qualifying offers after their rookie contracts expire also receive veto power.

So far, only has met either the second or third of those guidelines in 2020/21, but there are many more who have met the first one. Here are the players who must give their consent if their teams want to trade them during the ’20/21 league year:

No-trade clauses:

  • None

Players whose offer sheets were matched:

  • None

Players accepting qualifying offers:

Players re-signing for one year (or two years, with a second-year player/team option):

If any player who re-signed for one year approves a trade during the 2020/21 league year, he’ll have Non-Bird rights at season’s end instead of Early Bird or full Bird rights. That’s what happened to James Ennis last season — he would have had Early Bird rights at season’s end if he hadn’t approved a trade from Philadelphia to Orlando. In order to re-sign him this summer, the Magic had to use part of their mid-level exception, since his Non-Bird rights weren’t enough for his raise to $3.3MM.

Any player who consents to a trade will retain his veto ability on his new team, and would have to approve a subsequent deal as well.

Information from ESPN’s Bobby Marks was used in the creation of this post. Photo courtesy of USA Today Sports Images.

Longest-Tenured NBA GMs/Presidents

As is the case in the NBA’s head coaching ranks, a number of long-tenured heads of basketball operations have been replaced over the course of 2020, a result of some offseason front office shakeups.

Since we put together last summer’s list of the league’s longest-tenured heads of basketball operations, the Bulls (John Paxson/Gar Forman) and Rockets (Daryl Morey) are among the six teams that have made major changes, installing a new decision-maker atop their respective basketball operations departments for the first time in well over a decade. As such, it’s time to update our list.

While only one person holds a team’s head coaching job, that same team could carry a variety of front office executives with titles like general manager, president of basketball operations, or executive VP of basketball operations. In some cases, it’s not always which clear which executive should be considered the club’s head of basketball operations, or which one has the ultimate final say on roster decisions. That distinction becomes even more nebulous when taking into account team ownership.

For our list of the longest-tenured GMs/presidents in the NBA, we’ve done our best to identify the top exec in each front office, but if a situation isn’t entirely clear-cut, we’ve made a note below.

Without further ado, here’s the list of the NBA’s longest-tenured heads of basketball operations, along with their respective titles and the dates they were hired or promoted:


  1. Gregg Popovich, Spurs (president): May 31, 1994
    • Brian Wright holds the general manager title, but Popovich ultimately has final say.
  2. Pat Riley, Heat (president): September 2, 1995
  3. Danny Ainge, Celtics (president): May 9, 2003
  4. Donn Nelson, Mavericks (GM/president): March 19, 2005
    • Owner Mark Cuban is also heavily involved in basketball decisions and ultimately has final say.
  5. Sam Presti, Thunder (GM/executive VP): June 7, 2007
  6. Bob Myers, Warriors (GM/president): April 24, 2012
  7. Neil Olshey, Trail Blazers (president): June 4, 2012
  8. Dennis Lindsey, Jazz (executive VP): August 7, 2012
  9. Masai Ujiri, Raptors (president): May 31, 2013
  10. Tim Connelly, Nuggets (president): June 17, 2013
  11. Sean Marks, Nets (GM): February 18, 2016
  12. Kevin Pritchard, Pacers (president): May 1, 2017
  13. Jeff Weltman, Magic (president): May 22, 2017
  14. Travis Schlenk, Hawks (president): May 25, 2017
  15. Jon Horst, Bucks (GM): June 16, 2017
  16. Koby Altman, Cavaliers (GM): June 19, 2017
  17. Lawrence Frank, Clippers (president): August 4, 2017
  18. Mitch Kupchak, Hornets (GM/president): April 8, 2018
  19. Tommy Sheppard, Wizards (GM): April 2, 2019
    • Sheppard assumed the job on an interim basis on April 2, 2019. He was named the permanent GM on July 22, 2019.
  20. Rob Pelinka, Lakers (GM/VP): April 9, 2019
    • Pelinka has been the Lakers’ GM since February 2017, but was below Magic Johnson in the front office hierarchy until Johnson resigned on April 9, 2019.
  21. James Jones, Suns (GM): April 11, 2019
    • Jones began serving as the Suns’ co-interim GM alongside Trevor Bukstein in October 2018, but was named the lone, permanent head of basketball operations on April 11, 2019.
  22. Zach Kleiman, Grizzlies (executive VP): April 11, 2019
  23. David Griffin, Pelicans (executive VP): April 17, 2019
  24. Gersson Rosas, Timberwolves (president): May 3, 2019
  25. Leon Rose, Knicks (president): March 2, 2020
  26. Arturas Karnisovas, Bulls (executive VP): April 13, 2020
  27. Troy Weaver, Pistons (GM): June 18, 2020
  28. Monte McNair, Kings (GM): September 17, 2020
  29. Rafael Stone, Rockets (GM): October 15, 2020
  30. Daryl Morey, Sixers (president): November 2, 2020

Information from Basketball-Reference was used in the creation of this post. Photo courtesy of USA Today Sports Images.

Poll: Will Giannis Sign Super-Max Extension With Bucks?

All of 2020’s top 50 free agents are off the board. LeBron James, Jayson Tatum, and several other notable players have signed contract extensions. Every 2020 draftee who is expected to sign a contract for the coming season has done so.

However, we’ll still waiting for news on the biggest contract question of the NBA offseason: Will Giannis Antetokounmpo sign a super-max extension with the Bucks?

Antetokounmpo’s decision figures to have a seismic impact on the rest of the league. Besides potentially making or breaking the Bucks’ future, it’ll also be a crucial turning point for all the teams who are maintaining cap flexibility in the hopes of making a run at the reigning MVP in 2021 free agency, including the Mavericks, Raptors, and Heat.

Even the teams that have no shot at landing Antetokounmpo themselves will be keeping a close on his situation, since the NBA’s balance of power could shift depending on where the star forward decides to spend the next few years of his career.

The Bucks and Antetokounmpo have until December 21 to finalize a super-max extension, which would add five years onto his current deal and pay him a projected $228.2MM (assuming the cap increases by 3% for 2021/22). If the two sides don’t reach an agreement by that point, Antetokounmpo will be on track to reach free agency in 2021, putting significant pressure on the Bucks to prove during the coming season that they’re a legitimate championship contender.

Reports leading up to the offseason indicated that the Bucks were projecting confidence about their chances of locking up Giannis before the regular season began, but Zach Lowe of ESPN said on The Jump on Tuesday (video link) that the team has “gone kind of silent” since then.

That doesn’t necessarily mean that the Bucks aren’t still confident, but it’s somewhat concerning when combined with reports that Antetokounmpo had been looking forward to teaming up with Bogdan Bogdanovic, who was seemingly on track to join the Bucks in a sign-and-trade deal last month before it fell apart.

Still, the Bucks have posted the NBA’s best record for two consecutive seasons and added Jrue Holiday to the mix for 2020/21. There’s no reason why they shouldn’t be one of the best teams in the NBA again this season, and Holiday increases their postseason upside.

Antetokounmpo’s teammates also don’t seem too concerned about his contract situation, having jokingly gifted him with pens for his 26th birthday on Sunday, as Eric Woodyard of ESPN details.

It’s worth noting that the Bucks and Antetokounmpo could still complete the same five-year super-max extension during the 2021 offseason — they don’t necessarily have to get it done now.

But if he decides to wait, Giannis would be signaling that he wants to keep his options open, and speculation about his future would only increase over the course of the year, since super-max deals can’t be signed during the season. He won’t be able to get any more money by waiting, so if he knows he wants to stay in Milwaukee long-term, it makes sense for him to sign that new deal sooner rather than later.

What do you think? Will Antetokounmpo sign a super-max extension with the Bucks sometime in the next 12 days? Or will he forgo a new deal this month, choosing to keep his options open as his 2021 free agency approaches?

Vote in our poll, then head to the comment section below to share your thoughts!

Trade Rumors app users, click here to vote.

Photo courtesy of USA Today Sports Images.

Longest-Tenured Players By NBA Team

The NBA’s 2020 offseason wasn’t quite as wild as the 2019 offseason when it came to player movement, but we still saw a number of players change teams this fall after having been with their previous clubs for a very long time.

John Wall, for instance, had been a member of the Wizards for over a decade, making him one of the NBA’s longest-tenured players by team until he was traded to Houston last week. Tristan Thompson, meanwhile, had spent his entire career since entering the league in 2011 with the Cavaliers before he changed teams in free agency last month.

The Wizards and Cavaliers are two of the eight teams that have a new longest-tenured player since we completed our last list during the 2019 offseason. In some cases, that new player isn’t a surprise — you likely won’t be shocked to learn that Bradley Beal is now the Wizards’ longest-tenured player. In other cases though, teams have undergone so much turnover that no player on the current roster has been with the club for more than a year or two.

Here are the NBA’s current longest-tenured players by team as of the 2020 preseason:


  1. Miami Heat: Udonis Haslem (free agent), August 2003
  2. Golden State Warriors: Stephen Curry (draft), June 2009
  3. San Antonio Spurs: Patty Mills (free agent), March 2012
  4. Washington Wizards: Bradley Beal (draft), June 2012
  5. Portland Trail Blazers: Damian Lillard (draft), June 2012
  6. Toronto Raptors: Kyle Lowry (trade), July 2012
  7. Orlando Magic: Nikola Vucevic (trade), August 2012
  8. Houston Rockets: James Harden (trade), October 2012
  9. Charlotte Hornets: Cody Zeller (draft), June 2013
  10. Milwaukee Bucks: Giannis Antetokounmpo (draft), June 2013
  11. Utah Jazz: Rudy Gobert (draft trade), June 2013
  12. Philadelphia 76ers: Joel Embiid (draft), June 2014
  13. Boston Celtics: Marcus Smart (draft), June 2014
  14. Denver Nuggets: Gary Harris (draft trade), Nikola Jokic (draft), June 2014
    • Note: Harris is technically the slightly longer-tenured member of the Nuggets, having been drafted 19th overall, while Jokic was picked 41st overall.
  15. Cleveland Cavaliers: Kevin Love (trade), August 2014
  16. Dallas Mavericks: Dwight Powell (trade), December 2014
  17. Minnesota Timberwolves: Karl-Anthony Towns (draft), June 2015
  18. Indiana Pacers: Myles Turner (draft), June 2015
  19. Phoenix Suns: Devin Booker (draft), June 2015
  20. Chicago Bulls: Cristiano Felicio (free agent), July 2015
  21. Brooklyn Nets: Caris LeVert (draft trade), June 2016
  22. Sacramento Kings: Buddy Hield (trade), February 2017
  23. New York Knicks: Frank Ntilikina (draft), June 2017
  24. Atlanta Hawks: John Collins (draft), June 2017
  25. Los Angeles Lakers: Kyle Kuzma (draft trade), June 2017
  26. Memphis Grizzlies: Dillon Brooks (draft trade), June 2017
  27. Los Angeles Clippers: Patrick Beverley (trade), Lou Williams (trade), June 2017
    • Note: Beverley and Williams were acquired in the same trade.
  28. Detroit Pistons: Blake Griffin (trade), January 2018
  29. Oklahoma City Thunder: Hamidou Diallo (trade), July 2018
  30. New Orleans Pelicans: Zion Williamson (draft), June 2019

Photo courtesy of USA Today Sports Images.

How Players Who Declined Options Fared In Free Agency

Heading into the 2020 offseason, 29 veterans held player options on their contracts, allowing them to either opt in for the 2020/21 season or opt out and reach the open market. Of those 29 players, 13 decided to turn down their options and become free agents.

For some players, that decision was a simple one. Jerami Grant, for instance, was never going to exercise his $9.3MM option with the Nuggets, since opting out allowed him to get a raise and gain long-term security — and, as it turned out, to land with a new team.

The decision wasn’t so easy for every player who opted out though. Now that those 13 veterans have officially signed new contracts and the salary details are in, we want to look back on those decisions and see if they paid off.

Let’s dive in…


Players who received a 2020/21 raise and a multiyear contract:

  • Anthony Davis
    • Option: $28,751,774 (Lakers)
    • New contract: Five years, $189.9MM (Lakers)
  • Jerami Grant
    • Option: $9,346,153 (Nuggets)
    • New contract: Three years, $60MM (Pistons)
  • Kentavious Caldwell-Pope
    • Option: $8,543,746 (Lakers)
    • New contract: Three years, $39.11MM (Lakers)
      • Note: Third year isn’t fully guaranteed.
  • JaMychal Green
    • Option: $5,005,350 (Clippers)
    • New contract: Two years, $15MM (Nuggets)
  • Rajon Rondo
    • Option: $2,692,991 (Lakers)
    • New contract: Two years, $15MM (Hawks)

Opting out was a win-win for these players, who will not only receive a higher salary in 2020/21 than they would have if they’d opted in, but also received at least one more guaranteed year beyond the coming season. In Green’s case, his second year is a player option, so he’ll be faced with another opt-out decision in 2021.


Players who received a raise for 2020/21:

  • Rodney Hood
    • Option: $6,003,900 (Trail Blazers)
    • New contract: Two years, $20.9MM (Trail Blazers)
      • Note: Second-year is not guaranteed.
  • Avery Bradley
    • Option: $5,005,350 (Lakers)
    • New contract: Two years, $11.6MM (Heat)
      • Note: Second year is not guaranteed.
  • Austin Rivers
    • Option: $2,436,046 (Rockets)
    • New contract: Three years, $10MM (Knicks)
      • Note: Second and third years are not guaranteed.
  • Willie Cauley-Stein
    • Option: $2,286,357 (Mavericks)
    • New contract: Two years, $8.2MM (Mavericks)
      • Note: Second year is not guaranteed.
  • Robin Lopez
    • Option: $5,005,350 (Bucks)
    • New contract: One year, $7.3MM (Wizards)
  • Wesley Matthews
    • Option: $2,692,991 (Bucks)
    • New contract: One year, $3.6MM (Lakers)
  • James Ennis
    • Option: $2,130,023 (Magic)
    • New contract: One year, $3.3MM (Magic)

This group of players didn’t receive any guarantees beyond 2020/21, but it’s hard to argue that any of them made the wrong move by opting out, since they’ll all earn more this season than they would have on their respective options.


Players who received a long-term commitment and more overall money:

  • Gordon Hayward
    • Option: $34,187,085 (Celtics)
    • New contract: Four years, $120MM (Hornets)

Hayward’s decision to opt out received more scrutiny than any other player’s, since turning down a $34MM+ option raised eyebrows — especially since so few teams had cap room available. But it had always seemed likely that Hayward would be able to secure an overall guarantee that significantly exceeded $34MM, even if he had take a modest pay cut in the short term.

As expected, Hayward won’t earn as much in 2020/21 on his new deal as he would have if he’d opted in. But he’ll still have a $28.5MM salary this season, and the Hornets were willing to give him raises for three years on top of that, resulting in a $120MM overall commitment.

Of the 13 players who opted out, Hayward is the only one who will earn less this season than he would have if he’d exercised his option. However, he also increased his overall guarantee by nearly $86MM, making him one of free agency’s biggest winners. He and the other dozen players who turned down their player options all clearly made the right call.

Photos courtesy of USA Today Sports Images.

Longest-Tenured NBA Head Coaches

Despite some speculation earlier in the year that the financial impact of the coronavirus pandemic would dissuade NBA teams from making head coaching changes (and having to pay two contracts at once), 2020 has been an eventful year on the league’s coaching carousel.

Ten teams have made changes since we listed the NBA’s longest-tenured head coaches in the summer of 2019. That’s a full third of the league.

Of those who were replaced, Doc Rivers (Clippers), Brett Brown (Sixers), and Billy Donovan (Thunder) had ranked among the top 10 longest-tenured head coaches, while only David Fizdale (Knicks), Jim Boylen (Bulls), and John Beilein (Cavaliers) had coached their respective clubs for fewer than four seasons.

Given the turnover in the head coaching ranks, it’s time we update our list. Here’s the current breakdown of the NBA’s longest-tenured head coaches by team, sorted by the date they were hired:

  1. Gregg Popovich, Spurs: December 1996
  2. Erik Spoelstra, Heat: April 2008
  3. Rick Carlisle, Mavericks: May 2008
  4. Terry Stotts, Trail Blazers: August 2012
  5. Brad Stevens, Celtics: July 2013
  6. Steve Kerr, Warriors: May 2014
  7. Quin Snyder, Jazz: June 2014
  8. Michael Malone, Nuggets: June 2015
  9. Scott Brooks, Wizards: April 2016
  10. James Borrego, Hornets: May 10, 2018
  11. Lloyd Pierce, Hawks: May 11, 2018
  12. Mike Budenholzer, Bucks: May 17, 2018
  13. Steve Clifford, Magic: May 30, 2018
  14. Dwane Casey, Pistons: June 11, 2018
  15. Nick Nurse, Raptors: June 14, 2018
  16. Ryan Saunders, Timberwolves: January 2019
  17. Luke Walton, Kings: April 2019
  18. Monty Williams, Suns: May 3, 2019
    • Note: Remained a Sixers assistant through the end of Philadelphia’s playoff run.
  19. Frank Vogel, Lakers: May 13, 2019
  20. Taylor Jenkins, Grizzlies: June 2019
  21. J.B. Bickerstaff, Cavaliers: February 2020
  22. Tom Thibodeau, Knicks: July 2020
  23. Steve Nash, Nets: September 3, 2020
  24. Billy Donovan, Bulls: September 22, 2020
  25. Doc Rivers, Sixers: October 3, 2020
  26. Nate Bjorkgren, Pacers: October 20, 2020
  27. Tyronn Lue, Clippers: October 20, 2020
  28. Stan Van Gundy, Pelicans: October 22, 2020
  29. Stephen Silas, Rockets: October 30, 2020
  30. Mark Daigneault, Thunder: November 2020

Photo courtesy of USA Today Sports Images.

Several Teams Expected To Opt Out Of G League Bubble

Several teams plan to opt out of the proposed G League “bubble” campus in Atlanta, JD Shaw of Hoops Rumors tweets.

There are already as many as six-to-eight franchises expected to bypass the shortened season, according to Shaw’s sources. 

Under the proposal, NBA teams would pay a fee of approximately $500K to play their G League games in Georgia, rather than their home sites. Not all G League clubs would be expected to participate there.

It’s uncertain how many teams are on board with the “bubble” proposal and whether there will be enough to make it viable.

The Atlanta “bubble” season would last for one month, likely starting in late January, with a minimum of 12 games that may increase to 15-16 games, plus a potential playoff schedule. The campus would require daily coronavirus testing and a mandated quarantine for players.

The G League Ignite team, a club comprised mostly of high-level prospects, is also expected to compete in this bubble environment.