now handles multi-line banners and warns if no banner provided