almost completes #2