renamed run() to main()