do we need it as a member function?