done i think, also did some testing