Remove use of SendMessage; replace with delegate+event