main (revised #2 with ToDo)