more flexible plot "shell"