basic C-grade specs met. could use better error handling and functional interface improvements. code runs correctly on breadboard-prototyped device.