add neighbourhood generation