Added comments
TODO: Split into sections