do this terrible exhaustive thing