Improved Exception usage, using IOEs when they should be