Start splitting scanning functionality out