added more documentation and added neighbors in a specific order
replaced np.pi with PI and merged