big fix on slice, uses std::begin and uses std::advance