this version works, loop time sometimes spikes to 15ms