Needs to be rearranged for easier comprehension