add cache and multh threading