Initial commit with main file, headers, and makefile.