php 5.3+ compatibility