some refactoring and preparation for appstore requester