implement splice.