be defensive if no custom cta provided