Issue #4 - now using RuntimeExceptions mostly everywhere