fixed #1; fixed return types of splice and slice