add shell and main