finished, but cant test because cant print because oo many IO