Refactor donation methods.