correct mul function