Refactor LigerWebClient for extensibility