refactor Vertex;