working on issue #4, basic solution
- not breaking any tests for BasePromiseSpec or the test suite
- needs some more work to split up responsibilities
- invoking done twice after complete (#1) is not noticed by the test results