refactored the travelling functionality out into a separate module (in anticipation of moving users)