public method