compatible with php5.3