implement slice