cleaned up
trying to make it a lil easier to explain line by line