we will need to rewrite division once again