implements neighbors