Major Code Update, includes stuff I am working on, that might not be used in the final submission.