more shell-like logic