this is going to take SO long