Code is now half-decent

Spatial hash is (almost) separated from other classes