refactor member management