more refactor of put methods