more accurately send on interval - send times can vary so not using timer thread