pub trait MultiplyArg: Clone + Rem<Output = Self> + Div<Output = Self> + Mul<Output = Self> + Add<Output = Self> + Unsigned { }