implemented mul and sub