moved MapDelegate, implemented Apply