add check filled neighbor and random empty neighbor methods