Added caching and colors