maybe the tolerance could be tightened just a bit, but other than that, seems like a pretty good start