utilities like caching , trees and graphs