gtk client implementation