improved neighbourhood class