wrote proper mul16x16 library