add peripheral delegate