added delegate callback
introduce alpha