added error tracking & handling, feedback, locking to prevent multiple sending