first pass at implementing with gpio userspace