Refactor.

(1) Move assert to it's own file in order to reuse.
(2) Add place to keep useful functions form SICP.
(3) Refactor exercise 1.3 leveraging SICP code.
Complete exercise 1.5