Explained in another way, this process attempts to account for wave dispersion from dipping reflectors and also for the spatial and directional seismic wave speed (heterogeneity) variations, which cause wavefields (modelled by ray paths) to bend, wave fronts to cross (caustics), and waves to be recorded at positions different from those that would be expected under straight ray or other simplifying assumptions. Finally, this process often attempts to also preserve and extract the formation interface reflectivity information imbedded in the seismic data amplitudes, so that they can be used to reconstruct the elastic properties of the geological formations (amplitude preservation, seismic inversion). There are a variety of migration algorithms, which can be classified by their output domain into the broad categories of time migration or depth migration, and pre-stack migration or post-stack migration (orthogonal) techniques. Depth migration begins with time data converted to depth data by a spatial geological velocity profile. Post-stack migration begins with seismic data which has already been stacked, and thus already lost valuable velocity analysis information.