Move error code negation to send method to prevent confusion
Don't use dynamically sized vectors where slices are sufficient