first part of public methods