don't depend on Perlude::Sh anymore