collapse works, tests passing