Using a weakhashmap was a bad idea, also make more resiliant to reloads