Added more comments to sources as I understood them