updates with new tests, and destroy methods