comments explaining the multiple main() functions