Enhance

Addresses issues #2, #4, and #8.