Add cache, close #9.