default main implementation