use private methods