this took me half of the day