hostname abstraction