extract shell.open from constructor