Added hard and soft exceptions