Refactored topology to use simpler definitions for point, vector