Use headers instead of extern for functions in other source files. Use standard integers. Mv structs and enums to the top as well as globals