This is going to be time consuming