public function reduce(callable $iterator, $initial = null)
    {
        foreach ($this as $k => $v) {
            $initial = $iterator($initial, $v, $k, $this);
        }
        return $initial;
    }