event delegator for custom objects