updated for compatibility with php 5.4