made independent from any Vector type. made 3D again