should think in code and do not repeat the code.