Add cached partial rendering, fixes #224, contributes to #66