PHP 5.2 compatible + tests