add slice algorithms