refactoring put