not working yet (many test failures), but things are no longer broken in dumb ways