compatible with php 5.4