* some refactoring
+ spatial search