Hopefully closer to constant time in Check()