added spatial clustering