do not access class member function directly