`self.valid_amount_check(self.token1_balance.clone(), _amount_token1)?;` clone() driven programming is not the art of engineering