a main entrance for shell