add support for init/fini array in main program, and greatly simplify