add cache and follow functionality