I just had this idea about removing free throws from the game. IIIII thought it was a pretty good idea...
If a ref calls a foul, continue the game and have judges determine whether or not it was a foul. If it was, add the two or three points (or one if they made the basket.) If it wasn't a foul then don't add any points but also take the foul off the player it was called on.
A coach or player can argue a no call but they'd only have a limited number of times they can argue. Just to keep the players honest and add a level of strategicness. Say you have 5 times you can argue a no call, you'd want to make sure you're honest so you don't miss out on any possible points.
This would make flopping pointless, correct refs on bad calls/no calls, and most importantly, it would make the game more fair.