refactor ET_Client for DRY, corrected minor bugs