diff --git a/pkg/machine/fcos.go b/pkg/machine/fcos.go
index 4ea965b7f9..cfcadeb021 100644
--- a/pkg/machine/fcos.go
+++ b/pkg/machine/fcos.go
@@ -3,12 +3,20 @@
 package machine
 
 import (
+	"encoding/json"
+	"fmt"
+	"io/ioutil"
+	"net/http"
 	url2 "net/url"
 	"os"
 	"path/filepath"
 	"runtime"
 	"strings"
 
+	"github.com/coreos/stream-metadata-go/fedoracoreos"
+	"github.com/coreos/stream-metadata-go/stream"
+	"github.com/pkg/errors"
+
 	digest "github.com/opencontainers/go-digest"
 	"github.com/sirupsen/logrus"
 )
@@ -121,3 +129,68 @@ func getFcosArch() string {
 	}
 	return arch
 }
+
+// This should get Exported and stay put as it will apply to all fcos downloads
+// getFCOS parses fedoraCoreOS's stream and returns the image download URL and the release version
+func getFCOSDownload(imageStream string) (*fcosDownloadInfo, error) {
+	var (
+		fcosstable stream.Stream
+		streamType string
+	)
+	switch imageStream {
+	case "testing", "":
+		streamType = fedoracoreos.StreamNext
+	case "stable":
+		streamType = fedoracoreos.StreamStable
+	default:
+		return nil, errors.Errorf("invalid stream %s: valid streams are `testing` and `stable`", imageStream)
+	}
+	streamurl := fedoracoreos.GetStreamURL(streamType)
+	resp, err := http.Get(streamurl.String())
+	if err != nil {
+		return nil, err
+	}
+	body, err := ioutil.ReadAll(resp.Body)
+	if err != nil {
+		return nil, err
+	}
+	defer func() {
+		if err := resp.Body.Close(); err != nil {
+			logrus.Error(err)
+		}
+	}()
+
+	if err := json.Unmarshal(body, &fcosstable); err != nil {
+		return nil, err
+	}
+	arch, ok := fcosstable.Architectures[getFcosArch()]
+	if !ok {
+		return nil, fmt.Errorf("unable to pull VM image: no targetArch in stream")
+	}
+	artifacts := arch.Artifacts
+	if artifacts == nil {
+		return nil, fmt.Errorf("unable to pull VM image: no artifact in stream")
+	}
+	qemu, ok := artifacts[artifact]
+	if !ok {
+		return nil, fmt.Errorf("unable to pull VM image: no qemu artifact in stream")
+	}
+	formats := qemu.Formats
+	if formats == nil {
+		return nil, fmt.Errorf("unable to pull VM image: no formats in stream")
+	}
+	qcow, ok := formats[Format]
+	if !ok {
+		return nil, fmt.Errorf("unable to pull VM image: no qcow2.xz format in stream")
+	}
+	disk := qcow.Disk
+	if disk == nil {
+		return nil, fmt.Errorf("unable to pull VM image: no disk in stream")
+	}
+	return &fcosDownloadInfo{
+		Location:        disk.Location,
+		Release:         qemu.Release,
+		Sha256Sum:       disk.Sha256,
+		CompressionType: "xz",
+	}, nil
+}
diff --git a/pkg/machine/fcos_amd64.go b/pkg/machine/fcos_amd64.go
deleted file mode 100644
index 4e2e86d3e6..0000000000
--- a/pkg/machine/fcos_amd64.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package machine
-
-import (
-	"encoding/json"
-	"fmt"
-	"io/ioutil"
-	"net/http"
-
-	"github.com/coreos/stream-metadata-go/fedoracoreos"
-	"github.com/coreos/stream-metadata-go/stream"
-	"github.com/pkg/errors"
-	"github.com/sirupsen/logrus"
-)
-
-// This should get Exported and stay put as it will apply to all fcos downloads
-// getFCOS parses fedoraCoreOS's stream and returns the image download URL and the release version
-func getFCOSDownload(imageStream string) (*fcosDownloadInfo, error) {
-	var (
-		fcosstable stream.Stream
-		streamType string
-	)
-	switch imageStream {
-	case "testing", "":
-		streamType = fedoracoreos.StreamNext
-	case "stable":
-		streamType = fedoracoreos.StreamStable
-	default:
-		return nil, errors.Errorf("invalid stream %s: valid streams are `testing` and `stable`", imageStream)
-	}
-	streamurl := fedoracoreos.GetStreamURL(streamType)
-	resp, err := http.Get(streamurl.String())
-	if err != nil {
-		return nil, err
-	}
-	body, err := ioutil.ReadAll(resp.Body)
-	if err != nil {
-		return nil, err
-	}
-	defer func() {
-		if err := resp.Body.Close(); err != nil {
-			logrus.Error(err)
-		}
-	}()
-
-	if err := json.Unmarshal(body, &fcosstable); err != nil {
-		return nil, err
-	}
-	arch, ok := fcosstable.Architectures[getFcosArch()]
-	if !ok {
-		return nil, fmt.Errorf("unable to pull VM image: no targetArch in stream")
-	}
-	artifacts := arch.Artifacts
-	if artifacts == nil {
-		return nil, fmt.Errorf("unable to pull VM image: no artifact in stream")
-	}
-	qemu, ok := artifacts[artifact]
-	if !ok {
-		return nil, fmt.Errorf("unable to pull VM image: no qemu artifact in stream")
-	}
-	formats := qemu.Formats
-	if formats == nil {
-		return nil, fmt.Errorf("unable to pull VM image: no formats in stream")
-	}
-	qcow, ok := formats[Format]
-	if !ok {
-		return nil, fmt.Errorf("unable to pull VM image: no qcow2.xz format in stream")
-	}
-	disk := qcow.Disk
-	if disk == nil {
-		return nil, fmt.Errorf("unable to pull VM image: no disk in stream")
-	}
-	return &fcosDownloadInfo{
-		Location:        disk.Location,
-		Release:         qemu.Release,
-		Sha256Sum:       disk.Sha256,
-		CompressionType: "xz",
-	}, nil
-}
diff --git a/pkg/machine/fcos_arm64.go b/pkg/machine/fcos_arm64.go
deleted file mode 100644
index f45522be0e..0000000000
--- a/pkg/machine/fcos_arm64.go
+++ /dev/null
@@ -1,177 +0,0 @@
-package machine
-
-import (
-	"encoding/json"
-	"io/ioutil"
-	"net/http"
-	url2 "net/url"
-
-	"github.com/sirupsen/logrus"
-)
-
-const aarchBaseURL = "https://fedorapeople.org/groups/fcos-images/builds/latest/aarch64/"
-
-// Total hack until automation is possible.
-// We need a proper json file at least to automate
-func getFCOSDownload(imageStream string) (*fcosDownloadInfo, error) {
-	meta := Build{}
-	resp, err := http.Get(aarchBaseURL + "meta.json")
-	if err != nil {
-		return nil, err
-	}
-	body, err := ioutil.ReadAll(resp.Body)
-	if err != nil {
-		return nil, err
-	}
-	defer func() {
-		if err := resp.Body.Close(); err != nil {
-			logrus.Error(err)
-		}
-	}()
-	if err := json.Unmarshal(body, &meta); err != nil {
-		return nil, err
-	}
-	pathURL, err := url2.Parse(meta.BuildArtifacts.Qemu.Path)
-	if err != nil {
-		return nil, err
-	}
-
-	baseURL, err := url2.Parse(aarchBaseURL)
-	if err != nil {
-		return nil, err
-	}
-	pullURL := baseURL.ResolveReference(pathURL)
-	return &fcosDownloadInfo{
-		Location:  pullURL.String(),
-		Release:   "",
-		Sha256Sum: meta.BuildArtifacts.Qemu.Sha256,
-	}, nil
-}
-
-/*
-	All of this can be nuked when fcos upstream generates a proper meta data file for aarch.
-*/
-type AliyunImage struct {
-	ImageID string `json:"id"`
-	Region  string `json:"name"`
-}
-
-type Amis struct {
-	Hvm      string `json:"hvm"`
-	Region   string `json:"name"`
-	Snapshot string `json:"snapshot"`
-}
-
-type Artifact struct {
-	Path               string  `json:"path"`
-	Sha256             string  `json:"sha256"`
-	SizeInBytes        float64 `json:"size,omitempty"`
-	UncompressedSha256 string  `json:"uncompressed-sha256,omitempty"`
-	UncompressedSize   int     `json:"uncompressed-size,omitempty"`
-}
-
-type Build struct {
-	AlibabaAliyunUploads      []AliyunImage         `json:"aliyun,omitempty"`
-	Amis                      []Amis                `json:"amis,omitempty"`
-	Architecture              string                `json:"coreos-assembler.basearch,omitempty"`
-	Azure                     *Cloudartifact        `json:"azure,omitempty"`
-	BuildArtifacts            *BuildArtifacts       `json:"images,omitempty"`
-	BuildID                   string                `json:"buildid"`
-	BuildRef                  string                `json:"ref,omitempty"`
-	BuildSummary              string                `json:"summary"`
-	BuildTimeStamp            string                `json:"coreos-assembler.build-timestamp,omitempty"`
-	BuildURL                  string                `json:"build-url,omitempty"`
-	ConfigGitRev              string                `json:"coreos-assembler.config-gitrev,omitempty"`
-	ContainerConfigGit        *Git                  `json:"coreos-assembler.container-config-git,omitempty"`
-	CoreOsSource              string                `json:"coreos-assembler.code-source,omitempty"`
-	CosaContainerImageGit     *Git                  `json:"coreos-assembler.container-image-git,omitempty"`
-	CosaDelayedMetaMerge      bool                  `json:"coreos-assembler.delayed-meta-merge,omitempty"`
-	CosaImageChecksum         string                `json:"coreos-assembler.image-config-checksum,omitempty"`
-	CosaImageVersion          int                   `json:"coreos-assembler.image-genver,omitempty"`
-	Extensions                *Extensions           `json:"extensions,omitempty"`
-	FedoraCoreOsParentCommit  string                `json:"fedora-coreos.parent-commit,omitempty"`
-	FedoraCoreOsParentVersion string                `json:"fedora-coreos.parent-version,omitempty"`
-	Gcp                       *Gcp                  `json:"gcp,omitempty"`
-	GitDirty                  string                `json:"coreos-assembler.config-dirty,omitempty"`
-	ImageInputChecksum        string                `json:"coreos-assembler.image-input-checksum,omitempty"`
-	InputHasOfTheRpmOstree    string                `json:"rpm-ostree-inputhash"`
-	MetaStamp                 float64               `json:"coreos-assembler.meta-stamp,omitempty"`
-	Name                      string                `json:"name"`
-	Oscontainer               *Image                `json:"oscontainer,omitempty"`
-	OstreeCommit              string                `json:"ostree-commit"`
-	OstreeContentBytesWritten int                   `json:"ostree-content-bytes-written,omitempty"`
-	OstreeContentChecksum     string                `json:"ostree-content-checksum"`
-	OstreeNCacheHits          int                   `json:"ostree-n-cache-hits,omitempty"`
-	OstreeNContentTotal       int                   `json:"ostree-n-content-total,omitempty"`
-	OstreeNContentWritten     int                   `json:"ostree-n-content-written,omitempty"`
-	OstreeNMetadataTotal      int                   `json:"ostree-n-metadata-total,omitempty"`
-	OstreeNMetadataWritten    int                   `json:"ostree-n-metadata-written,omitempty"`
-	OstreeTimestamp           string                `json:"ostree-timestamp"`
-	OstreeVersion             string                `json:"ostree-version"`
-	OverridesActive           bool                  `json:"coreos-assembler.overrides-active,omitempty"`
-	PkgdiffAgainstParent      PackageSetDifferences `json:"parent-pkgdiff,omitempty"`
-	PkgdiffBetweenBuilds      PackageSetDifferences `json:"pkgdiff,omitempty"`
-	ReleasePayload            *Image                `json:"release-payload,omitempty"`
-}
-
-type BuildArtifacts struct {
-	Aliyun        *Artifact `json:"aliyun,omitempty"`
-	Aws           *Artifact `json:"aws,omitempty"`
-	Azure         *Artifact `json:"azure,omitempty"`
-	AzureStack    *Artifact `json:"azurestack,omitempty"`
-	Dasd          *Artifact `json:"dasd,omitempty"`
-	DigitalOcean  *Artifact `json:"digitalocean,omitempty"`
-	Exoscale      *Artifact `json:"exoscale,omitempty"`
-	Gcp           *Artifact `json:"gcp,omitempty"`
-	IbmCloud      *Artifact `json:"ibmcloud,omitempty"`
-	Initramfs     *Artifact `json:"initramfs,omitempty"`
-	Iso           *Artifact `json:"iso,omitempty"`
-	Kernel        *Artifact `json:"kernel,omitempty"`
-	LiveInitramfs *Artifact `json:"live-initramfs,omitempty"`
-	LiveIso       *Artifact `json:"live-iso,omitempty"`
-	LiveKernel    *Artifact `json:"live-kernel,omitempty"`
-	LiveRootfs    *Artifact `json:"live-rootfs,omitempty"`
-	Metal         *Artifact `json:"metal,omitempty"`
-	Metal4KNative *Artifact `json:"metal4k,omitempty"`
-	OpenStack     *Artifact `json:"openstack,omitempty"`
-	Ostree        Artifact  `json:"ostree"`
-	Qemu          *Artifact `json:"qemu,omitempty"`
-	Vmware        *Artifact `json:"vmware,omitempty"`
-	Vultr         *Artifact `json:"vultr,omitempty"`
-}
-
-type Cloudartifact struct {
-	Image string `json:"image"`
-	URL   string `json:"url"`
-}
-
-type Extensions struct {
-	Manifest       map[string]interface{} `json:"manifest"`
-	Path           string                 `json:"path"`
-	RpmOstreeState string                 `json:"rpm-ostree-state"`
-	Sha256         string                 `json:"sha256"`
-}
-
-type Gcp struct {
-	ImageFamily  string `json:"family,omitempty"`
-	ImageName    string `json:"image"`
-	ImageProject string `json:"project,omitempty"`
-	URL          string `json:"url"`
-}
-
-type Git struct {
-	Branch string `json:"branch,omitempty"`
-	Commit string `json:"commit"`
-	Dirty  string `json:"dirty,omitempty"`
-	Origin string `json:"origin"`
-}
-
-type Image struct {
-	Comment string `json:"comment,omitempty"`
-	Digest  string `json:"digest"`
-	Image   string `json:"image"`
-}
-
-type Items interface{}
-
-type PackageSetDifferences []Items