A general formulation for multi-modal dynamic traffic assignment considering multi-class vehicles, public transit and parking