only set shell if not already set