add caching,  extend getInfoFromMets