refactoring giver and trader