Base exception is now an interface, using SPL exceptions