implement TAKE ONE and TAKE MANY

fix bugs

fix bugs