Finished parts 1:4, added some comments