private function add($value, $function)
    {
        if (!$this->exists($value)) {
            $function($this->values, $value);

            if ($this->isLimitExceeded()) {
                $this->removeLatest();
            }

            return true;
        } else {
            return false;
        }
    }