better cleanup in error case
eliminate infinite interface recursion
Merge pull request #8 from mreiferson/perf

eliminate infinite interface recursion yay