(1) Cache check images to disk

(2) Tighten class inheritance and internal documentation
(3) Add SQLite test program