REFACTOR IT !!! but everything is working well.