almost done on #90