Changed abstract function class