Added some more comments. Might want to read the TODOs in the class's description. They explain how the structure will be changed.