Nearly finished reproduction code, just need a wrapper