So ugly.

Make Location#add(Vector) actually add the vector

Modify getRelative()

Make it use clone() and add(Vector) instead of instantiating a new
vector manually.

Javadoc

Validation, validation everywhere.

Add more adding.

notNull