extensions return, they don't output directly