add weakly && strongly