added delegate instead of perform selector