made more efficient