Move machine responsibility into the Matrix::City class and update tests.