final version of client