better explanation of #prepare