updated for php 5.4