Mobility models have traditionally been tailored to specific application domains such as human, military, or ad hoc transportation scenarios. This tailored approach often renders a mobility model useless when the application domain changes, and leads to wrong conclusions about the performance of protocols and applications running atop of different domains. In this work we propose and implement a mobility modeling framework (UMMF) based on the observation that the mobility characteristics of most mobility-based applications can be captured in terms of a few fundamental factors: (1) Targets; (2) Obstacles; (3) Dynamic events; (4) Navigation; (5) Steering behaviors; and (6) Dynamic behaviors. We demonstrate the mapping of application-domain-specifics to UMMF elements, showing the power and flexibility of our approach.