honestly this is going to take a while. join