heredoc support