Added send / receive using buffering and interrupts to communication