components map is now more efficient