updated main()