Add buffertools
Fix source comparison
Refactored comms logic
Use cleaned up comms