adding tests, incorporating feedback