updated 'put' definition