feat(client): initial