macdo array & hash version