Need more comments throughout the code.