rewrote control. timing looks much better. no stacks