refactored directions data source