Initial commit of all the source files. This is currently undergoing a refactor and changes, so this copy is not working.