Cleaned up source, directories, and added header file to improve general readability