Pushing this broken code development in case I ever want to revisit this project. For now, this branch doesn't compile.