merge the BuilderImpl and CacheBuilder