Moved common logic out to a "base" recipe