Final client implementation with API