add slice function