dialects refactored as partial functions