moved delegate call out of writer lock