alternate implementation that doesnt expose a colorizer via  and doesn't memoize the coloured values