slightly slower sending for reliability; keep object instantiations outside of loops for best performance