this took me 90 days to finish...