feat: client lib