Split shell() into shell() and execute()
added initial redirection support