Add separate error cache, change options
error is cached if present regardless of result
replaced by assert
comments + readme