rewrote with hwio, more structs, no more redis