implemented exact divison