implemented neighbour count