main.c functions