Client constructor