Refactor for PHP 5.3 support