Client create/update refactored