A three-level framework for performance-based railway timetabling