This took me an hour