this took longer than it should have