main shell