PHP 5.4+ delegate system