- Replace die() with throw exception
 - Make private and protected functions and properties actually private and protected.
- Removed call_user_func_array fallback