Refactoring and PHP 5.3 compatibility