delegate now more flexible