refactor usage of transfer object