Vertex class modified to immutable
- Movements return with a new Vertex object