all of them are static, except main()