def_delegator is hard to read, implement Put#blocks directly