add caching to pls-parser