This is taking foreverrrrrr. Work in progress.