//initialisation
$hs = new hooks();
$observer = new interested_party();
$change_method = array($object, 'setter');
//setup change point(can be done externally from $change method)
$hs->at('change', $change_method);
//express interest
$hs->after('change', array($obesrver, 'callback'));
$hs->run($arg);