We don't really need to intermediate array