public function get_output() : string {
		$output = ( false !== $this->args['cache'] ) ? $this->get_cache() : '';

		if ( $output ) {
			return $output;
		}

		ob_start();
		if ( $this->has_template() ) {
			$this->load_template( $this->locate_template() );
		}
		$output = ob_get_clean();

		if ( false !== $this->args['cache'] ) {
			$this->set_cache( $output );
		}

		return $output;

	}