Categories, Prototypes, refactoring, reworking main.c for better testing.