interceptor does not work, using private function instead