first stab at client (wip)