verified that having just one direction works with the algorithm (didn't work because MulC was used in reverise for divide, added divide constraint )