incorporate feedback, completes #3