first take at generic hal client