spoilers throughout this page