main, and almost