finished basic client