split out prepare