this took an hour