implemented mul/div with defensive programming