revision of one_shot logic