horribly inefficient checking algorithm: check