stackexchange client refactoring