Minor. Also constructors of shell_base are now protected so that it won't be instantiated directly.