moved client to own module