Another commit since I cleaned up more code, refactored a few things and added more comments.