plugin has been rewrited via OOP aproach