use exceptions instead. closes #2
demoing