https://medium.com/datadriveninvestor/partitioning-2d-spaces-an-introduction-to-quadtrees-d95728856613